$(function(){
	var $tabList=$("#tab_list"),$pagebar=$("#pagebar ul"),$pageInfo=$("#page_info"),
		pageNo=1,pageSize=10,count=0;//初始值
	/**---------------封装分页方法,count:总条目数,pageNo:当前页---------------*/
	function pageit(count){
		$pagebar.empty();
		//首页和上一页
		if(pageNo==1){
			$pagebar.append("<li id='start_page' class='disabled'><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page'  class='disabled'><a href='javascript:void(0);'>上一页</a></li>");
		}else{
			$pagebar.append("<li id='start_page' pn=1><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page' pn="+(pageNo-1)+"><a href='javascript:void(0);'>上一页</a></li>");
		}
		var tmp=parseInt(count/10);
		var page_size=count%10==0?(tmp):(tmp+1);//总页数
		//中间数字页
		if(page_size<=5){
			//如果小于5页,则全部显示
			for(var i = 0; i <page_size; i++) {
				if(i==pageNo-1){
					$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}else{
					$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}
			}
		}else{
			//如果总页数大于5页,显示当前页和前后各两页以及两个...符号
			if(pageNo<3){
				for(var i = 0; i <5; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
			}else if(pageNo>page_size-2){
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
				for(var i = page_size-5; i <page_size; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}else{
				for (var i = pageNo-3; i <pageNo+2; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(pageNo)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}
		}
		//下一页和末页
		if(page_size==0||pageNo==page_size){
			$pagebar.append("<li id='next_page' class='disabled'><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' class='disabled'><a href='javascript:void(0);'>末页</a></li>");
		}else{
			$pagebar.append("<li id='next_page' pn="+(pageNo+1)+"><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' pn="+page_size+"><a href='javascript:void(0);'>末页</a></li>");
		}
		
		//绑定事件
		$pagebar.find("li").not(".disabled").on("click",function(){
			pageNo=parseInt($(this).attr("pn"));//更新当前页码
			reloadList();
		});
		//分页信息条
		$pageInfo.find("span").each(function(i,k){
			if(i==0){
				if(page_size==0){
					$(k).html(0);
				}else{
					$(k).html((pageNo-1)*10+1);
				}
			}else if(i==1){
				$(k).html(count>pageNo*10?pageNo*10:count);
			}else{
				$(k).html(count);
			}
		});
	}
	/**------------------加载列表---------------------*/
	var params={"pageNo":1,"pageSize":pageSize,"keyword":null,"des":null};
	function reloadList(){
		params.pageNo=pageNo;
		params.pageSize=pageSize;
		params.keyword=$("#search_keyword").val();
		params.des=$("#search_des").val();
		$.get(serverURL+"param/list",params,function(data){
			try {
				if(data.code==0){
					data=data.data;
					$tabList.find("tbody").empty();
					count=data.pagination.totalCount;
					if(count>0){
						var html="";
						$.each(data.list,function(i,k){
							html+="<tr>" +
							"<td id='pkc'><input type='checkbox' id='"+k.keyword+"' class='checkbox' col='"+i+"'></td>" +
							"<td>"+((pageNo-1)*10+i+1)+"</td>" +
							"<td>"+k.keyword+"</td>"+ 
							"<td>"+k.des+"</td>"+ 
							"<td style='table-layout:fixed; word-break: break-all; overflow:hidden;'>"+k.value+"</td>"+ 
							"</tr>";
						});
						$tabList.find("tbody").append(html);
						$tabList.find("tr").dblclick(function(){
							openEditModal($(this).find("#pkc :checkbox").attr("id"));
						});
//					$(".tools button").removeAttr("disabled");
					}else{
						$tabList.find("tbody").append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
//					$(".tools button").not(".btn-default").attr("disabled","disabled");
					}
					pageit(count);//重绘工具栏
				}else if(data.code!=-1){
					alert("数据加载出错，请稍后重试");
				}
			} catch (e) {
				alert("数据加载出错，请稍后重试");
			}
		});
	}
	reloadList();
	//全选与取消全选
	$("#pkall").change(function(){
		if($(this).prop("checked")){
			$tabList.find("#pkc :checkbox").prop("checked",true);
		}else{
			$tabList.find("#pkc :checkbox").prop("checked",false);
		}
	});
	//获取选中的行
	function getSelectedCols(){
		return $tabList.find("#pkc :checkbox").filter(":checked");
	}
	/**---------------查询-----------------*/
	$("#btn_search").click(function(){
		params.keyword=$("#search_keyword").val();
		params.des=$("#search_des").val();
		pageNo=1;
		reloadList();
		return false;
	});
	/**---------------重置-----------------*/
	$("#btn_reset").click(function(){
		$("#form_search").get(0).reset();
		pageNo=1;
		reloadList();
		return false;
	});
    /**-------------修改参数信息-----------------*/
    var $formEdit=$("#form_edit"),$editkeyword=$formEdit.find("[name=keyword]"),$editName=$formEdit.find("[name=pdes]"),$editValue=$formEdit.find("[name=pValue]");
    //var $editName=$("#edit_name"),$editValue=$("#edit_disease");
    //绑定验证效果
    $editName.focus(function(){clearWarn($(this));}).popover({"trigger":"manual"});
    $editValue.focus(function(){clearWarn($(this));}).popover({"trigger":"manual"});
    function checkEditForm(){
    	if(!$editValue.val()){
    		warnInput($editValue);
    		return false;  		
    	}
//    	if($editValue.val().length>20){
//			alert("参数值不能超过20个字符");
//			return false;
//		}
    	if(!$editName.val()){
    		warnInput($editName);
    		return false;
    	}
    	if($editName.val().length>20){
			alert("参数说明不能超过20个字符");
			return false;
		}
    	return true;
    }  
    function openEditModal(keyword){
    	//给隐藏域keyword赋值
    	$("#edit_keyword").val(keyword);
    	//从后台获取该条记录所有信息
    	$.get(serverURL+"param/get",{"keyword":keyword},function(data){
    		if(data.code==0){
    			data=data.data;
    			$editValue.val(data.value);
    			$editName.val(data.des);
    			$("#modal_edit").modal("show");
    		}else if(data.code!=-1){
    			alert("参数信息加载失败");
    		}
    	});	
    }
    $("#btn_edit").click(function(){
    	//获取选中的行		
		var $curCol=$tabList.find("#pkc :checkbox").filter(":checked");
    	if($curCol.length!=1){
    		alert("请选择一条记录预览,也可双击一行来修改");
    		return;
    	}
    	openEditModal($curCol[0].id);
    });
    
    $("#btn_confirm_edit").click(function(){
    	//表单验证
    	if(checkEditForm()){
			$.post(serverURL+"param/modify",{"keyword":$editkeyword.val(),"value":$editValue.val(),"des":$editName.val()},function(data){
//				data=$.parseJSON(data);
				if(data.code==0){
					alert("修改成功");
					$('#modal_edit').modal('hide');//隐藏模态框
					$formEdit.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("修改失败,请稍后重试");
				}
			});
		}
    });
});